#!/usr/bin/python3
# _*_ coding: utf-8 _*_
#
# Copyright (C) 2024 - 2024 heihieyouheihei, Inc. All Rights Reserved 
#
# @Time    : 2024/9/10 10:10
# @Author  : Yuyun
# @File    : 字符串处理_字符串转为列表.py
# @IDE     : PyCharm

people = "[[6,0],[5,0],[4,0],[3,2],[2,2],[1,4]]"

#   方法1——json
# import json
# # 假设字符串已经是有效的JSON（或接近），这里我们直接尝试解析
# s = "[[6,0],[5,0],[4,0],[3,2],[2,2],[1,4]]"
# try:
#     data = json.loads(s)
# except json.JSONDecodeError:
#     # 如果直接解析失败，可能需要先进行一些处理（比如替换单引号为双引号）
#     # 但在这个例子中，直接解析是可行的
#     pass
#
# print(data)

#   方法2——eval
# 字符串表示一个 Python 列表的嵌套列表（二维列表）。
# 这个字符串本身就是一个有效的 Python 表达式，因此可以直接用 eval() 来解析它
data = eval(people)
print(data)

#   方法3——字符串分割
def parse_string_to_2d_list(s):
    # 去掉最外层的方括号
    s = s[1:-1]
    # 按照外层的逗号分割字符串，得到内部列表的字符串表示
    inner_lists_str = s.split('],[')
    # 初始化二维列表
    result = []
    # 遍历内部列表的字符串表示
    for inner_list_str in inner_lists_str:
        # 去掉每个内部列表字符串的开头和结尾的方括号
        inner_list_str = inner_list_str.strip('[]')
        # 将内部列表的字符串按照逗号分割成元素，并转换为整数（假设元素都是整数）
        # 注意：如果元素可能是其他类型（如浮点数、字符串等），则需要相应地修改转换逻辑
        inner_list = [int(item) for item in inner_list_str.split(',')]

        # 将转换后的内部列表添加到二维列表中
        result.append(inner_list)
    return result
print(parse_string_to_2d_list(people))
# 输出: [[6, 0], [5, 0], [4, 0], [3, 2], [2, 2], [1, 4]]